Быстрый в изучении - мощный в программировании
>> Telegram ЧАТ для Python Программистов

Свободное общение и помощь советом и решением проблем с кодом! Заходите в наш TELEGRAM ЧАТ!

>> Python Форум Помощи!

Мы создали форум где отвечаем на все вопросы связанные с языком программирования Python. Ждем вас там!

>> Python Канал в Telegram

Обучающие статьи, видео и новости из мира Python. Подпишитесь на наш TELEGRAM КАНАЛ!

python работа с файлами

Копирование файлов в Python

Копирование файлов в Python

Перемещать и копировать файлы по каталогам нам поможет функции модуля shutil. Подключаем модуль shutil в начале нашего скрипта на Python, потом уже получим доступ к его функциям. Функции модуля shutil не ограничиваются только на копирование и перемещение, мы обсудим разные методики использования функции даного модуля.

Функция copyfile(Копируемый файл, путь куда копируем)

Копирует содержимое файла по указанному пути и создает новый в указанном во втором параметре месте. Методанные при этом не копируются т.е. права доступа и т.д. Если место куда мы копируем уже имеет такой файл он будет перезаписан. В случае неудачи копирования, возбуждается исключение IOError.

>>> import shutil # Подключаем модуль
>>> shutil.copyfile(r'/home/py/mouse.txt', r'/home/py/new-mouse.txt')
>>> # Указанный путь не будет существовать
>>> shutil.copyfile(r'/home/py/mouse.txt', r'/go/here/no.txt')
IOError: [Errno: 2] No such file or directory
'/go/here/no.txt'

Функция copy(Копируемый файл, куда копируем)

Копирует файл вместе с его правами. В случае если файл уже существовал, он будет перезаписан. Неудачное копирование вызовет исключение IOError.

shutil.copy(r'my_file.txt', r'new_file.txt')
Далее...

Работа с файлами в Python

20 января 2013 г. Archy Общие вопросы

Работа с файлами в Python

Файл - области постоянной памяти в вашем компьютере, которыми управляет операционная система. Объект файла создает функция open или file.

При работе с файлами используется буферизация и она включена по умолчанию. При буферизации данные не записываются в файл непосредственно при вызове метода записи. Они записываются, когда все действия с файлом прекращены или вызвана функция close().

f1 = open("test") # по умолчанию файл открывается в режиме r(чтение)
f2 = open("test", "w") # файл открывается для записи
f2 = open("test", "w", 0) # отключает буферизацию, данные сразу записываются в файл (например при вызове метода write())
f3 = open("test", "a") # файл открывается для записи в конец
f4 = open("test", "a+") # файл открывается как для чтения так и для записи в конец
f5 = open("test", "ab") # добавляя к режиму символ "b" мы можем работать с файлам как с двоичными данными(интерпритация символа новой строки отключена)
xfile = open("test.txt")
xString = xfile.read() # прочитать весь файл в строку
xString = xfile.read(N) # прочитать N-байтов в строку
xString = xfile.readline() # прочитать текстовую строку включая символ конца строки
xList = xfile.readlines() # прочитать весь файл целиком в список строк
xfile.write(xString) # записать строку в файл
xfile.writelines(xList) # записать строки из списка в файл
xfile.close() # закрытие файла в ручную (выполняется по окончанию работы с файлом)
xfile.flush() # выталкивает выходные буферы на диск, файл остается открытым
xfile.seek(N) # изменяет текущую позицию в файле для следующей операции, смещая ее на N-байтов от начала файла
Пример скрипта который сам создает файлы Python c баш-строкой.

#!/usr/bin/env python
# -*- coding: utf-8 -*-
myfile = open("newfile.py", "w")
myfile.write("#!/usr/bin/env python\n# -*- coding: utf-8 -*-")
myfile.close()
Скачать и сохранить файл, используя Python

#!/usr/bin/env python
# -*- coding: utf-8 -*-
url = "http://www.google.ru/index.html"
import urllib
webFile = urllib.urlopen(url)
localFile = open(url.split('/')[-1], 'wb')
localFile.write(webFile.read())
webFile.close()
localFile.close()
Далее...